package org.spring.springboot.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.spring.springboot.domain.Category;
import org.spring.springboot.domain.Entity;

/**
 * Category持久化层，需要在配置文件中对
 * 持久化层进行配置
 * @author lang
 * ****************************************
 * 实现增删改查的基本功能                       
 * 应该设计一个基础的持久化接口BaseEntityDao     
 * 每一个持久化层都实现BaseEntityDao          
 ******************************************
 */
public interface CategoryDao {
	/**
	 * 通过cid查询设备类别信息
	 * @param id
	 * @return
	 */
	Category findByCid(@Param("cid")int cid);
	/**
	 * 通过pid查询设备类别信息
	 * @param id
	 * @return
	 */
	Category findByPid(@Param("id")int id);
	/**
	 * 通过设备的类别名字查询类别信息
	 * @param name
	 * @return
	 */
	Category findByName(@Param("name")String name);
	/**
	 * 存储一个类别信息
	 * @param category
	 * @return
	 */
	//String saveCategoryEntity(@Param("category")Category category);
	/**
	 * 通过cid对设备类别信息进行更新
	 * 
	 * @param cid
	 * @param category
	 * @return
	 */
//	String updateCategoryEntityByCid(Category category);
//	/**
//	 * 通过pid对设备类别信息进行更新
//	 * @param pid
//	 * @param category
//	 * @return
//	 */
//	String updateCategoryEntityByPid(int pid, Category category);
//	/**
//	 * 通过name对设备类别信息进行更新
//	 * @param name
//	 * @param category
//	 * @return
//	 */
//	String updateCategoryEntityByName(String name, Category category);
//	/**
//	 * 对设备信息进行删除
//	 * 默认是通过pid对设备进行删除
//	 * @param category
//	 * @return
//	 */
//	String deleteCategory(Category category);
	/**
	 * 对所有的设备类别信息进行查询
	 * @return
	 */
	List<Entity> findAllCategory();
	/**
	 * simple join equipment & category
	 */
	Category findByOneAttrId(@Param("id")int id);
	
}
